package com.itheima.d06_static_code_blocks;

/**
 * 目标：掌握static修饰代码块的特点和使用场景
 */
public class Test {

    public static void main(String[] args) {
        /*
            1.静态代码块（特定场景下可以使用）
                执行时机：类加载时自动执行，仅仅执行一次
                使用场景：完成类的初始化操作，对类的类变量进行赋值操作

         */
        System.out.println(Pig.country);

        /*
            2.实例代码块（不推荐使用）
                执行时机：创建对象时自动执行，执行多次
                使用场景：完成对象的初始化操作，对对象的实例变量进行赋值操作
                        只能赋予相同的数据
         */
        Pig pig = new Pig();
        Pig pig1 = new Pig();
        Pig pig2 = new Pig();
        Pig pig3 = new Pig();



        /*
            3.static静态代码块使用场景：
                预加载数据，空间换时间思想
         */
        Pig pig4 = new Pig();
        pig4.name = "小猪";
        pig4.age = 5;


    }
}
